package com.sg.dto.biz.framework.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc AddPowerReqDto
 * @使用场景
 */
@Data
public class AddPowerReqDto extends BaseDto implements Serializable {

    /**
     * 权限标识
     */
    @NotNull(message = "权限标识不能为空")
    @ApiModelProperty("权限标识")
    private String privacyCode;

    /**
     * 权限名称
     */
    @NotNull(message = "权限名称不能为空")
    @ApiModelProperty("权限名称")
    private String privacyName;

    /**
     * 权限介绍
     */
    @ApiModelProperty("权限介绍")
    private String privacyIntroduce;

    /**
     * 权限图标
     */
    @ApiModelProperty("权限图标")
    private String privacyLogo;

    /**
     * 权限类型 SYSTEM_PRIVACY:系统权限 BUSINESS_PRIVACY:业务权限
     */
    @NotNull(message = "权限类型不能为空")
    @ApiModelProperty("权限类型")
    private String privacyType;

    /**
     * 分配策略 DEPARTMENT:部门 PERSONAL:个人 POST:职务 ROLE:角色
     */
    @NotNull(message = "分配策略不能为空")
    @ApiModelProperty("分配策略")
    private String strategyType;

    /**
     * 是否接口权限 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否接口权限不能为空")
    @ApiModelProperty("是否接口权限")
    private String isportPrivacy;

    /**
     * 权限路由
     */
    @ApiModelProperty("权限路由")
    private String privacyRoute;

    /**
     * 是否数据权限 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否数据权限不能为空")
    @ApiModelProperty("是否数据权限")
    private String isDataPrivacy;

    /**
     * 数据父模型编码
     */
    @ApiModelProperty("数据父模型编码")
    private String dataModel;

    /**
     * 权限类别 MAIN_DATA_PRIVACY:父级数据权限 SUB_DATA_PRIVACY:子级数据权限 COMMON_PRIVACY:普通权限
     */
    @ApiModelProperty("权限类别")
    private String privacyCategory;

    /**
     * 权限业务用途 BROWSE:浏览权限 ALL:管理全部权限
     */
    @ApiModelProperty("权限业务用途")
    private String businessPurposes;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @NotNull(message = "主体生命周期不能为空")
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

}
